Матч
15, Тир (ShootingGallery)
Вы поспорили с другом, что он не
попадет в мишень, сделав n выстрелов. Вероятность попадания друга в
мишень равна accuracy. Найти максимальное количество выстрелов, при котором Вам
есть смысл спорить. Вам есть смысл спорить, если вероятность попадания друга в
цель строго меньше 50%.
Класс: ShootingGallery
Метод: int
profitableBet(int accuracy)
Ограничения:
1 £ accuracy £ 100.
Вход. Вероятность попадания друга в мишень accuracy.
Выход. Максимальное количество выстрелов, при котором Вам есть
смысл спорить.
Пример входа
accuracy |
40 |
20 |
50 |
1 |
Пример выхода
1
3
0
68
РЕШЕНИЕ
вероятность
Вероятность того, что друг не
попадет в мишень с одного выстрела, равна 1 – accuracy /100.0. Вероятность того, что
друг не попадет в мишень сделав n выстрелов, равна
(1 – accuracy /100.0)n
Ответом задачи будет такое
наименьшее n, для которого указанная выше вероятность станет не больше
0.5.
ПРОГРАММА
#include <stdio.h>
class ShootingGallery{
public:
int profitableBet(int
accuracy)
{
double miss = 1 - accuracy / 100.0,prob
= miss;
int n = 0;
while (prob > 0.5) n++,prob *= miss;
return n;
}
};